﻿#pragma once
#include "stdafx1.h"
#include <QList>
#include <QMap>

#include "Source/ProjectModule/Undo/ExtendPart/C_UndoDataBase.h"
#include "Source/ProjectModule/File/UniqueTempFile/C_UniqueTempFile.h"

/*
-----==========================================================-----
		类：		电压监视器 数据类.h
		作者：		drill_up
		所属模块：	监视器模块
		功能：		电压监视器的数据类对象。
-----==========================================================-----
*/

class C_VoltageMonitor : public C_UndoDataBase{

	public:
		C_VoltageMonitor();
		~C_VoltageMonitor();
		
	//-----------------------------------
	//----属性
	protected:
										//ID（撤回基类数据）
										//名称（撤回基类数据）
		
	//-----------------------------------
	//----坐标
	public:
		int locationType;				//坐标类型（0:Coordinate, 1:Wire）
		double x1;
		double y1;
		double z1;
		double x2;
		double y2;
		double z2;
		bool directionInverted;

	//-----------------------------------
	//----分类
	public:
										//描述 - 获取属性描述
		QPair<QString, QString> getAttributesDesc();
		
		
	//-----------------------------------
	//----访问器
	public:
												//访问器 - 获取子类类名
		QString get__CLASS_NAME__() override;
												//访问器 - 获取子类类名（中文名）
		QString get__CLASS_NAME__Chinese() override;
												//访问器 - 获取所有继承的类名
		QStringList get__CLASS_INHERITED_LIST__() override;
												//访问器 - 是否继承了某类
		bool get__CLASS_IS_INSTANCE_OF__(QString class_name) override;
												//访问器 - 原型复制对象
		C_VoltageMonitor clone();
		QSharedPointer<C_VoltageMonitor> clonePtr();
		C_UndoDataBasePtr cloneParentPtr() override;

	//-----------------------------------
	//----类属性
	public:
												//复制对象
		void copyFrom(C_VoltageMonitor* a);
												//运算符重载
		const bool operator== (const C_VoltageMonitor& a)const;
												//空判断
		bool isNull();
												//实体类 -> QJsonObject
		QJsonObject getJsonObject_undoChildData() override;
												//QJsonObject -> 实体类
		void setJsonObject_undoChildData(QJsonObject obj) override;

};
